const adminModel = require('../db/model/adminModel')
//token校验的中间件
const {
    jwtDecode
} = require('../utils/token')
module.exports = async (req, res, next) => {
    try {
    const {
        token
    } = req.headers
    // console.log("headers",token);
    //对token进行解码(返回一个对象 code代表解码的情况)
    const jwtResult = jwtDecode(token, "xyue")
    //为0表示解码失败
    if (jwtResult.code === 0) {
        return res.send({
            code: 20000,
            msg: "服务器权限校验解码失败",
            data: null
        })
    }
    // console.log(jwtResult);
    //代码执行到这里表示解码成功了，返回一个adminName，我们拿这个name去数据库里查询状态，看状态是否为1
        const findResult = await adminModel.findOne({
            adminName:jwtResult.adminName
        })
        if (findResult.status === 0) {
            return res.send({
                code: 20000,
                msg: '服务端权限校验失败，数据库保存的status异常',
                data: null
            })
        }
        next()
    } catch (e) {
        console.log("权限控制中:查询status状态出现异常" + e.message);
        res.send({
            code: 20000,
            msg: '权限控制中:查询status状态出现异常" + e.message',
            data: null
        })
    }
}